package com.whz.gateway.user;

import com.whz.generic.spring.SpringUtils;

/**
 * 认证校验
 *
 * @author whz
 */
public interface AuthWrapper {
    /**
     * 验证access token
     *
     * @param accesToken 登录的access token
     * @return 是否有效
     */
    boolean validToken(String accesToken);

    /**
     * 验证API 登录的access token
     *
     * @param accesToken API 登录的access token
     * @return 是否有效
     */
    boolean validApiToken(String accesToken);

    /**
     * 验证client id
     *
     * @param clientId client id
     * @return 是否有效
     */
    boolean validClient(String clientId);

    /**
     * access token 校验类的bean
     *
     * @return {@link AuthWrapper}
     */
    static AuthWrapper getInstance() {
        return SpringUtils.getBean(AuthWrapper.class).orElseThrow(() -> new RuntimeException("未注册AuthWrapper类型"));
    }
}